import { resolve } from 'path';
import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import viteSvgIcons from 'vite-plugin-svg-icons';
// import legacy from "@vitejs/plugin-legacy";
import vueJsx from '@vitejs/plugin-vue-jsx';
import removeConsole from 'vite-plugin-remove-console';

export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd());
  const config = {
    base: mode === 'local' ? '/' : './',
    define: {
      'process.env': env,
    },
    plugins: [
      vue(),
      vueJsx(),
      removeConsole(),
      // legacy({ // 配置浏览器兼容性，支持IE版本11及以上
      //   targets: ["ie >= 11"],
      //   additionalLegacyPolyfills: ["regenerator-runtime/runtime"],
      // }),
      viteSvgIcons({
        // 指定需要缓存的图标文件夹
        iconDirs: [resolve(process.cwd(), 'src/assets/icon/svg')],
        // 指定symbolId格式
        symbolId: '[name]',
      }),
    ],
    // 文件夹别名 @ 为src目录
    resolve: {
      alias: [
        {
          find: '@',
          replacement: resolve(__dirname, 'src'),
        },
        {
          find: 'src',
          replacement: resolve(__dirname, 'src'),
        },
      ],
      extensions: ['.vue', '.js', '.jsx'],
    },
    esbuild: {
      jsxFactory: 'h',
      jsxFragment: 'Fragment',
      jsxInject: "import { h } from 'vue';",
      loader: 'jsx',
    },
    css: {
      preprocessorOptions: {
        scss: {
          additionalData:
            '@use "@/assets/scss/colorUI.scss" as *; @import "@/assets/scss/global.scss";@import "@/assets/scss/iconfont.scss";',
        },
      },
    },

    server: {
      port: 3000, // 端口号
      open: true, // 是否自动在浏览器打开
      host: '0.0.0.0',
      outDir: 'dist', // 打包构建输出路径，默认 dist ，如果路径存在，构建之前会被删除
      proxy: {
        // 本地开发环境通过代理实现跨域，生产环境使用 nginx 转发
        '^/studio': {
          target: 'http://192.168.1.85:8082', // 测试环境接口
          // target: 'http://192.168.1.79:8083', // 演示环境接口
          changeOrigin: true,
          // rewrite: (p) => p.replace(/^\//, '')
        },
        '/app-api': {
          target: 'http://192.168.20.157:48080', // 锋哥
          changeOrigin: true,
          // rewrite: (p) => p.replace(/^\//, '')
        },
        '/qc': {
          // target: 'http://test:48080/', // 本地代理环境接口
          target: 'http://192.168.1.79:48080/', // 测试环境接口
          // target: 'http://192.168.20.132:48080/', // 兆鸿环境接口
          // target: 'http://192.168.1.76:48080', // 建伟环境
          // target: 'http://192.168.20.32:48080',//富豪
          changeOrigin: true,
          // rewrite: (p) => p.replace(/^\//, '')
          // rewrite: p => `/qc/front/${p}`,
        },
      },
      fs: {
        // 可以为项目根目录的上一级提供服务
        allow: ['..'],
      },
    },
  };
  return config;
});
